package com.wangji92.arthas.plugin.demo.test.clazz;

import org.objectweb.asm.*;

public class AppMainDump implements Opcodes {

    public static byte[] dump() throws Exception {

        ClassWriter classWriter = new ClassWriter(0);
        FieldVisitor fieldVisitor;
        MethodVisitor methodVisitor;
        AnnotationVisitor annotationVisitor0;

        classWriter.visit(V1_8, ACC_PUBLIC | ACC_SUPER, "com/wangji92/arthas/plugin/demo/test/AppMain", "<X:Ljava/lang/Number;Y:Ljava/lang/Number;>Ljava/lang/Thread;Ljava/io/Serializable;Lcom/sun/corba/se/spi/orbutil/fsm/Action;", "java/lang/Thread", new String[]{"java/io/Serializable", "com/sun/corba/se/spi/orbutil/fsm/Action"});

        classWriter.visitSource("AppMain.java", null);

        classWriter.visitInnerClass("com/wangji92/arthas/plugin/demo/test/AppMain$TestInnerClass", "com/wangji92/arthas/plugin/demo/test/AppMain", "TestInnerClass", 0);

        classWriter.visitInnerClass("com/wangji92/arthas/plugin/demo/test/AppMain$TestInnerClassStatic", "com/wangji92/arthas/plugin/demo/test/AppMain", "TestInnerClassStatic", ACC_STATIC);

        classWriter.visitInnerClass("java/lang/invoke/MethodHandles$Lookup", "java/lang/invoke/MethodHandles", "Lookup", ACC_PUBLIC | ACC_FINAL | ACC_STATIC);

        {
            fieldVisitor = classWriter.visitField(ACC_PUBLIC | ACC_FINAL | ACC_STATIC, "staticFiled4", "I", null, new Integer(1234));
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_STATIC, "staticFiled0", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_STATIC, "staticFiled1", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_STATIC, "staticFiled2", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_STATIC, "staticFiled3", "I", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_PUBLIC, "instanceFiled2", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_PROTECTED, "instanceFiled1", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(0, "instanceFiled3", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_PRIVATE, "userHome", "Ljava/lang/String;", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_PRIVATE, "instanceFiled0", "I", null, null);
            {
                annotationVisitor0 = fieldVisitor.visitAnnotation("Ljavax/validation/constraints/NotNull;", true);
                annotationVisitor0.visit("message", "\u4e0d\u80fd\u4e3anull");
                annotationVisitor0.visitEnd();
            }
            {
                annotationVisitor0 = fieldVisitor.visitTypeAnnotation(318767104, null, "Ljavax/validation/constraints/NotNull;", true);
                annotationVisitor0.visit("message", "\u4e0d\u80fd\u4e3anull");
                annotationVisitor0.visitEnd();
            }
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_PRIVATE, "instanceFiled0000", "I", null, null);
            fieldVisitor.visitEnd();
        }
        {
            fieldVisitor = classWriter.visitField(ACC_PRIVATE, "instanceFiled1111", "I", null, null);
            fieldVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(53, label0);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Thread", "<init>", "()V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(28, label1);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitLdcInsn("user.home");
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1", "Ljava/lang/String;");
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(30, label2);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitLdcInsn("user.home");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/System", "getProperty", "(Ljava/lang/String;)Ljava/lang/String;", false);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "userHome", "Ljava/lang/String;");
            Label label3 = new Label();
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(31, label3);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitIntInsn(SIPUSH, 4321);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled0", "I");
            Label label4 = new Label();
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(33, label4);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitIntInsn(BIPUSH, 111);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled0000", "I");
            Label label5 = new Label();
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLineNumber(35, label5);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitIntInsn(SIPUSH, 130);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1111", "I");
            Label label6 = new Label();
            methodVisitor.visitLabel(label6);
            methodVisitor.visitLineNumber(39, label6);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("n {}1");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label7 = new Label();
            methodVisitor.visitLabel(label7);
            methodVisitor.visitLineNumber(49, label7);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("n {}2");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label8 = new Label();
            methodVisitor.visitLabel(label8);
            methodVisitor.visitLineNumber(54, label8);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/System", "getenv", "(Ljava/lang/String;)Ljava/lang/String;", false);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled2", "Ljava/lang/String;");
            Label label9 = new Label();
            methodVisitor.visitLabel(label9);
            methodVisitor.visitLineNumber(55, label9);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitInsn(ACONST_NULL);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled2", "Ljava/lang/String;");
            Label label10 = new Label();
            methodVisitor.visitJumpInsn(IF_ACMPNE, label10);
            methodVisitor.visitLdcInsn("");
            Label label11 = new Label();
            methodVisitor.visitJumpInsn(GOTO, label11);
            methodVisitor.visitLabel(label10);
            methodVisitor.visitFrame(Opcodes.F_NEW, 1, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain"}, 1, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain"});
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled2", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitLdcInsn("xxx!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitLabel(label11);
            methodVisitor.visitFrame(Opcodes.F_NEW, 1, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain"}, 2, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String"});
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled3", "Ljava/lang/String;");
            Label label12 = new Label();
            methodVisitor.visitLabel(label12);
            methodVisitor.visitLineNumber(56, label12);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("instanceFiled : ");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled0000", "I");
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1111", "I");
            methodVisitor.visitInsn(IADD);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label13 = new Label();
            methodVisitor.visitLabel(label13);
            methodVisitor.visitLineNumber(57, label13);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("init!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label14 = new Label();
            methodVisitor.visitLabel(label14);
            methodVisitor.visitLineNumber(58, label14);
            methodVisitor.visitInsn(RETURN);
            Label label15 = new Label();
            methodVisitor.visitLabel(label15);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label15, 0);
            methodVisitor.visitMaxs(4, 1);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;)V", null, null);
            methodVisitor.visitParameter("x", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(61, label0);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitInvokeDynamicInsn("run", "()Ljava/lang/Runnable;", new Handle(Opcodes.H_INVOKESTATIC, "java/lang/invoke/LambdaMetafactory", "metafactory", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;", false), new Object[]{Type.getType("()V"), new Handle(Opcodes.H_INVOKESTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "lambda$new$0", "()V", false), Type.getType("()V")});
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Thread", "<init>", "(Ljava/lang/Runnable;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(28, label1);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitLdcInsn("user.home");
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1", "Ljava/lang/String;");
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(30, label2);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitLdcInsn("user.home");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/System", "getProperty", "(Ljava/lang/String;)Ljava/lang/String;", false);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "userHome", "Ljava/lang/String;");
            Label label3 = new Label();
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(31, label3);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitIntInsn(SIPUSH, 4321);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled0", "I");
            Label label4 = new Label();
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(33, label4);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitIntInsn(BIPUSH, 111);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled0000", "I");
            Label label5 = new Label();
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLineNumber(35, label5);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitIntInsn(SIPUSH, 130);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1111", "I");
            Label label6 = new Label();
            methodVisitor.visitLabel(label6);
            methodVisitor.visitLineNumber(39, label6);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("n {}1");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label7 = new Label();
            methodVisitor.visitLabel(label7);
            methodVisitor.visitLineNumber(49, label7);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("n {}2");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label8 = new Label();
            methodVisitor.visitLabel(label8);
            methodVisitor.visitLineNumber(64, label8);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/System", "getenv", "(Ljava/lang/String;)Ljava/lang/String;", false);
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled2", "Ljava/lang/String;");
            Label label9 = new Label();
            methodVisitor.visitLabel(label9);
            methodVisitor.visitLineNumber(65, label9);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitInsn(ACONST_NULL);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled2", "Ljava/lang/String;");
            Label label10 = new Label();
            methodVisitor.visitJumpInsn(IF_ACMPNE, label10);
            methodVisitor.visitLdcInsn("");
            Label label11 = new Label();
            methodVisitor.visitJumpInsn(GOTO, label11);
            methodVisitor.visitLabel(label10);
            methodVisitor.visitFrame(Opcodes.F_NEW, 2, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String"}, 1, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain"});
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled2", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitLdcInsn("xxx!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitLabel(label11);
            methodVisitor.visitFrame(Opcodes.F_NEW, 2, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String"}, 2, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String"});
            methodVisitor.visitFieldInsn(PUTFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled3", "Ljava/lang/String;");
            Label label12 = new Label();
            methodVisitor.visitLabel(label12);
            methodVisitor.visitLineNumber(66, label12);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("initX! ");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label13 = new Label();
            methodVisitor.visitLabel(label13);
            methodVisitor.visitLineNumber(68, label13);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitVarInsn(ASTORE, 2);
            methodVisitor.visitInsn(ICONST_M1);
            methodVisitor.visitVarInsn(ISTORE, 3);
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "hashCode", "()I", false);
            Label label14 = new Label();
            Label label15 = new Label();
            Label label16 = new Label();
            methodVisitor.visitLookupSwitchInsn(label16, new int[]{49, 50}, new Label[]{label14, label15});
            methodVisitor.visitLabel(label14);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitLdcInsn("1");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
            methodVisitor.visitJumpInsn(IFEQ, label16);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ISTORE, 3);
            methodVisitor.visitJumpInsn(GOTO, label16);
            methodVisitor.visitLabel(label15);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitLdcInsn("2");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
            methodVisitor.visitJumpInsn(IFEQ, label16);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitVarInsn(ISTORE, 3);
            methodVisitor.visitLabel(label16);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ILOAD, 3);
            Label label17 = new Label();
            Label label18 = new Label();
            Label label19 = new Label();
            methodVisitor.visitLookupSwitchInsn(label19, new int[]{0, 1}, new Label[]{label17, label18});
            methodVisitor.visitLabel(label17);
            methodVisitor.visitLineNumber(70, label17);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("switch:1");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label20 = new Label();
            methodVisitor.visitLabel(label20);
            methodVisitor.visitLineNumber(71, label20);
            methodVisitor.visitJumpInsn(GOTO, label19);
            methodVisitor.visitLabel(label18);
            methodVisitor.visitLineNumber(73, label18);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("switch:2");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label21 = new Label();
            methodVisitor.visitLabel(label21);
            methodVisitor.visitLineNumber(74, label21);
            methodVisitor.visitJumpInsn(GOTO, label19);
            methodVisitor.visitLabel(label19);
            methodVisitor.visitLineNumber(77, label19);
            methodVisitor.visitFrame(Opcodes.F_NEW, 2, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String"}, 0, new Object[]{});
            methodVisitor.visitInsn(RETURN);
            Label label22 = new Label();
            methodVisitor.visitLabel(label22);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label22, 0);
            methodVisitor.visitLocalVariable("x", "Ljava/lang/String;", null, label0, label22, 1);
            methodVisitor.visitMaxs(3, 4);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PUBLIC | ACC_STATIC, "main", "([Ljava/lang/String;)V", null, new String[]{"java/awt/AWTException"});
            methodVisitor.visitParameter("args", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(81, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("CAFEBABE");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "getBytes", "()[B", false);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/util/Arrays", "toString", "([B)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(82, label1);
            methodVisitor.visitLdcInsn("C:\\Users\\liuxiongkang\\Desktop\\AppMain.class");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "cn/hutool/core/io/FileUtil", "readBytes", "(Ljava/lang/String;)[B", false);
            methodVisitor.visitVarInsn(ASTORE, 1);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(83, label2);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("byte:");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/util/Arrays", "toString", "([B)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label3 = new Label();
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(85, label3);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "parseByte2HexStr", "([B)Ljava/lang/String;", false);
            methodVisitor.visitVarInsn(ASTORE, 2);
            Label label4 = new Label();
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(86, label4);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitInsn(ICONST_2);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "cn/hutool/core/util/StrUtil", "split", "(Ljava/lang/CharSequence;I)[Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/util/Arrays", "toString", "([Ljava/lang/Object;)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label5 = new Label();
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLineNumber(88, label5);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/time/LocalDateTime", "now", "()Ljava/time/LocalDateTime;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/time/LocalDateTime", "getHour", "()I", false);
            methodVisitor.visitIntInsn(BIPUSH, 22);
            Label label6 = new Label();
            methodVisitor.visitJumpInsn(IF_ICMPGT, label6);
            Label label7 = new Label();
            methodVisitor.visitLabel(label7);
            methodVisitor.visitLineNumber(89, label7);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ISTORE, 3);
            Label label8 = new Label();
            methodVisitor.visitLabel(label8);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"[Ljava/lang/String;", "[B", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ILOAD, 3);
            methodVisitor.visitInsn(ICONST_3);
            methodVisitor.visitJumpInsn(IF_ICMPGE, label6);
            Label label9 = new Label();
            methodVisitor.visitLabel(label9);
            methodVisitor.visitLineNumber(90, label9);
            methodVisitor.visitVarInsn(ILOAD, 3);
            Label label10 = new Label();
            methodVisitor.visitJumpInsn(IFNE, label10);
            Label label11 = new Label();
            methodVisitor.visitLabel(label11);
            methodVisitor.visitLineNumber(91, label11);
            Label label12 = new Label();
            methodVisitor.visitJumpInsn(GOTO, label12);
            methodVisitor.visitLabel(label10);
            methodVisitor.visitLineNumber(93, label10);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"[Ljava/lang/String;", "[B", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "execute", "([Ljava/lang/String;)V", false);
            Label label13 = new Label();
            methodVisitor.visitLabel(label13);
            methodVisitor.visitLineNumber(94, label13);
            methodVisitor.visitVarInsn(ILOAD, 3);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitJumpInsn(IF_ICMPNE, label12);
            Label label14 = new Label();
            methodVisitor.visitLabel(label14);
            methodVisitor.visitLineNumber(95, label14);
            methodVisitor.visitJumpInsn(GOTO, label6);
            methodVisitor.visitLabel(label12);
            methodVisitor.visitLineNumber(89, label12);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"[Ljava/lang/String;", "[B", "java/lang/String", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitIincInsn(3, 1);
            methodVisitor.visitJumpInsn(GOTO, label8);
            methodVisitor.visitLabel(label6);
            methodVisitor.visitLineNumber(99, label6);
            methodVisitor.visitFrame(Opcodes.F_NEW, 3, new Object[]{"[Ljava/lang/String;", "[B", "java/lang/String"}, 0, new Object[]{});
            methodVisitor.visitInsn(RETURN);
            Label label15 = new Label();
            methodVisitor.visitLabel(label15);
            methodVisitor.visitLocalVariable("i", "I", null, label8, label6, 3);
            methodVisitor.visitLocalVariable("args", "[Ljava/lang/String;", null, label0, label15, 0);
            methodVisitor.visitLocalVariable("bytes", "[B", null, label2, label15, 1);
            methodVisitor.visitLocalVariable("x", "Ljava/lang/String;", null, label4, label15, 2);
            methodVisitor.visitMaxs(3, 4);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PUBLIC | ACC_STATIC, "parseByte2HexStr", "([B)Ljava/lang/String;", null, null);
            methodVisitor.visitParameter("buf", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(102, label0);
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuffer");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuffer", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ASTORE, 1);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(103, label1);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ISTORE, 2);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitFrame(Opcodes.F_NEW, 3, new Object[]{"[B", "java/lang/StringBuffer", Opcodes.INTEGER}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ILOAD, 2);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitInsn(ARRAYLENGTH);
            Label label3 = new Label();
            methodVisitor.visitJumpInsn(IF_ICMPGE, label3);
            Label label4 = new Label();
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(104, label4);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitVarInsn(ILOAD, 2);
            methodVisitor.visitInsn(BALOAD);
            methodVisitor.visitIntInsn(SIPUSH, 255);
            methodVisitor.visitInsn(IAND);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "toHexString", "(I)Ljava/lang/String;", false);
            methodVisitor.visitVarInsn(ASTORE, 3);
            Label label5 = new Label();
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLineNumber(105, label5);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "length", "()I", false);
            methodVisitor.visitInsn(ICONST_1);
            Label label6 = new Label();
            methodVisitor.visitJumpInsn(IF_ICMPNE, label6);
            Label label7 = new Label();
            methodVisitor.visitLabel(label7);
            methodVisitor.visitLineNumber(106, label7);
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitIntInsn(BIPUSH, 48);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(C)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitVarInsn(ASTORE, 3);
            methodVisitor.visitLabel(label6);
            methodVisitor.visitLineNumber(108, label6);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"[B", "java/lang/StringBuffer", Opcodes.INTEGER, "java/lang/String"}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "toUpperCase", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuffer", "append", "(Ljava/lang/String;)Ljava/lang/StringBuffer;", false);
            methodVisitor.visitInsn(POP);
            Label label8 = new Label();
            methodVisitor.visitLabel(label8);
            methodVisitor.visitLineNumber(103, label8);
            methodVisitor.visitIincInsn(2, 1);
            methodVisitor.visitJumpInsn(GOTO, label2);
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(110, label3);
            methodVisitor.visitFrame(Opcodes.F_NEW, 2, new Object[]{"[B", "java/lang/StringBuffer"}, 0, new Object[]{});
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuffer", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitInsn(ARETURN);
            Label label9 = new Label();
            methodVisitor.visitLabel(label9);
            methodVisitor.visitLocalVariable("hex", "Ljava/lang/String;", null, label5, label8, 3);
            methodVisitor.visitLocalVariable("i", "I", null, label2, label3, 2);
            methodVisitor.visitLocalVariable("buf", "[B", null, label0, label9, 0);
            methodVisitor.visitLocalVariable("sb", "Ljava/lang/StringBuffer;", null, label1, label9, 1);
            methodVisitor.visitMaxs(2, 4);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE | ACC_STATIC, "execute", "([Ljava/lang/String;)V", null, new String[]{"java/awt/AWTException"});
            methodVisitor.visitParameter("args", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            Label label1 = new Label();
            Label label2 = new Label();
            methodVisitor.visitTryCatchBlock(label0, label1, label2, "java/lang/InterruptedException");
            Label label3 = new Label();
            methodVisitor.visitTryCatchBlock(label0, label1, label3, "java/lang/Exception");
            Label label4 = new Label();
            methodVisitor.visitTryCatchBlock(label0, label1, label4, null);
            Label label5 = new Label();
            methodVisitor.visitTryCatchBlock(label2, label5, label4, null);
            Label label6 = new Label();
            methodVisitor.visitTryCatchBlock(label3, label6, label4, null);
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(115, label0);
            methodVisitor.visitLdcInsn(new Long(1234L));
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Thread", "sleep", "(J)V", false);
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(121, label1);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally!!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label7 = new Label();
            methodVisitor.visitLabel(label7);
            methodVisitor.visitLineNumber(122, label7);
            Label label8 = new Label();
            methodVisitor.visitJumpInsn(GOTO, label8);
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(116, label2);
            methodVisitor.visitFrame(Opcodes.F_NEW, 1, new Object[]{"[Ljava/lang/String;"}, 1, new Object[]{"java/lang/InterruptedException"});
            methodVisitor.visitVarInsn(ASTORE, 1);
            Label label9 = new Label();
            methodVisitor.visitLabel(label9);
            methodVisitor.visitLineNumber(117, label9);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Thread", "interrupted", "()Z", false);
            methodVisitor.visitInsn(POP);
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLineNumber(121, label5);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally!!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label10 = new Label();
            methodVisitor.visitLabel(label10);
            methodVisitor.visitLineNumber(122, label10);
            methodVisitor.visitJumpInsn(GOTO, label8);
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(118, label3);
            methodVisitor.visitFrame(Opcodes.F_NEW, 1, new Object[]{"[Ljava/lang/String;"}, 1, new Object[]{"java/lang/Exception"});
            methodVisitor.visitVarInsn(ASTORE, 1);
            Label label11 = new Label();
            methodVisitor.visitLabel(label11);
            methodVisitor.visitLineNumber(119, label11);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Exception", "printStackTrace", "()V", false);
            methodVisitor.visitLabel(label6);
            methodVisitor.visitLineNumber(121, label6);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally!!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label12 = new Label();
            methodVisitor.visitLabel(label12);
            methodVisitor.visitLineNumber(122, label12);
            methodVisitor.visitJumpInsn(GOTO, label8);
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(121, label4);
            methodVisitor.visitFrame(Opcodes.F_NEW, 1, new Object[]{"[Ljava/lang/String;"}, 1, new Object[]{"java/lang/Throwable"});
            methodVisitor.visitVarInsn(ASTORE, 2);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally!!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label13 = new Label();
            methodVisitor.visitLabel(label13);
            methodVisitor.visitLineNumber(122, label13);
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitInsn(ATHROW);
            methodVisitor.visitLabel(label8);
            methodVisitor.visitLineNumber(124, label8);
            methodVisitor.visitFrame(Opcodes.F_NEW, 1, new Object[]{"[Ljava/lang/String;"}, 0, new Object[]{});
            methodVisitor.visitTypeInsn(NEW, "com/wangji92/arthas/plugin/demo/test/AppMain");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "com/wangji92/arthas/plugin/demo/test/AppMain", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ASTORE, 1);
            Label label14 = new Label();
            methodVisitor.visitLabel(label14);
            methodVisitor.visitLineNumber(125, label14);
            methodVisitor.visitTypeInsn(NEW, "com/wangji92/arthas/plugin/demo/test/AppMain");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "com/wangji92/arthas/plugin/demo/test/AppMain", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ASTORE, 2);
            Label label15 = new Label();
            methodVisitor.visitLabel(label15);
            methodVisitor.visitLineNumber(126, label15);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled0", "I");
            methodVisitor.visitInsn(ICONST_3);
            methodVisitor.visitFieldInsn(GETSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled1", "Ljava/lang/String;");
            methodVisitor.visitFieldInsn(GETSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled3", "I");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "com/wangji92/arthas/plugin/demo/test/AppMain", "actor", "(IILjava/lang/String;Ljava/lang/Number;)Ljava/lang/Number;", false);
            methodVisitor.visitInsn(POP);
            Label label16 = new Label();
            methodVisitor.visitLabel(label16);
            methodVisitor.visitLineNumber(128, label16);
            methodVisitor.visitInsn(RETURN);
            Label label17 = new Label();
            methodVisitor.visitLabel(label17);
            methodVisitor.visitLocalVariable("e", "Ljava/lang/InterruptedException;", null, label9, label5, 1);
            methodVisitor.visitLocalVariable("e", "Ljava/lang/Exception;", null, label11, label6, 1);
            methodVisitor.visitLocalVariable("args", "[Ljava/lang/String;", null, label0, label17, 0);
            methodVisitor.visitLocalVariable("appMain", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", null, label14, label17, 1);
            methodVisitor.visitLocalVariable("appMain2222", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", null, label15, label17, 2);
            methodVisitor.visitMaxs(5, 3);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE | ACC_STATIC, "invokeStatic", "(Ljava/lang/String;I)V", null, null);
            methodVisitor.visitParameter("paramsStr", 0);
            methodVisitor.visitParameter("paramsInt", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(131, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("paramsStr :{0} paramsInt:{1}");
            methodVisitor.visitInsn(ICONST_2);
            methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Object");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitVarInsn(ILOAD, 1);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/text/MessageFormat", "format", "(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(132, label1);
            methodVisitor.visitInsn(RETURN);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLocalVariable("paramsStr", "Ljava/lang/String;", null, label0, label2, 0);
            methodVisitor.visitLocalVariable("paramsInt", "I", null, label0, label2, 1);
            methodVisitor.visitMaxs(6, 2);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE, "actor", "(IILjava/lang/String;Ljava/lang/Number;)Ljava/lang/Number;", "<T:Ljava/lang/String;>(IITT;TX;)TX;", new String[]{"java/awt/AWTException"});
            methodVisitor.visitParameter("x", 0);
            methodVisitor.visitParameter("y", 0);
            methodVisitor.visitParameter("offset", 0);
            methodVisitor.visitParameter("xx", 0);
            {
                annotationVisitor0 = methodVisitor.visitTypeAnnotation(369098752, null, "Ljavax/validation/constraints/Size;", true);
                annotationVisitor0.visit("min", new Integer(1));
                annotationVisitor0.visit("max", new Integer(2));
                annotationVisitor0.visitEnd();
            }
            methodVisitor.visitAnnotableParameterCount(4, true);
            {
                annotationVisitor0 = methodVisitor.visitParameterAnnotation(0, "Ljavax/validation/constraints/Size;", true);
                annotationVisitor0.visit("min", new Integer(1));
                annotationVisitor0.visit("max", new Integer(2));
                annotationVisitor0.visitEnd();
            }
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(135, label0);
            methodVisitor.visitTypeInsn(NEW, "java/awt/Robot");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/awt/Robot", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ASTORE, 5);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(136, label1);
            methodVisitor.visitVarInsn(ALOAD, 5);
            methodVisitor.visitVarInsn(ILOAD, 1);
            methodVisitor.visitVarInsn(ILOAD, 2);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/awt/Robot", "mouseMove", "(II)V", false);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(137, label2);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("offsetV:");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label3 = new Label();
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(138, label3);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("xxV:");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 4);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/Object;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label4 = new Label();
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(139, label4);
            methodVisitor.visitVarInsn(ALOAD, 4);
            methodVisitor.visitInsn(ARETURN);
            Label label5 = new Label();
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label5, 0);
            methodVisitor.visitLocalVariable("x", "I", null, label0, label5, 1);
            methodVisitor.visitLocalVariable("y", "I", null, label0, label5, 2);
            methodVisitor.visitLocalVariable("offset", "Ljava/lang/String;", "TT;", label0, label5, 3);
            methodVisitor.visitLocalVariable("xx", "Ljava/lang/Number;", "TX;", label0, label5, 4);
            methodVisitor.visitLocalVariable("robot", "Ljava/awt/Robot;", null, label1, label5, 5);
            methodVisitor.visitMaxs(3, 6);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "sayHello", "(Ljava/lang/String;)I", null, new String[]{"java/io/IOException"});
            methodVisitor.visitParameter("s", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            Label label1 = new Label();
            Label label2 = new Label();
            methodVisitor.visitTryCatchBlock(label0, label1, label2, "java/lang/RuntimeException");
            Label label3 = new Label();
            methodVisitor.visitTryCatchBlock(label0, label1, label3, null);
            Label label4 = new Label();
            methodVisitor.visitTryCatchBlock(label2, label4, label3, null);
            Label label5 = new Label();
            methodVisitor.visitTryCatchBlock(label3, label5, label3, null);
            Label label6 = new Label();
            methodVisitor.visitLabel(label6);
            methodVisitor.visitLineNumber(143, label6);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("hello ");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label7 = new Label();
            methodVisitor.visitLabel(label7);
            methodVisitor.visitLineNumber(144, label7);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("user.home: ");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "userHome", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label8 = new Label();
            methodVisitor.visitLabel(label8);
            methodVisitor.visitLineNumber(145, label8);
            methodVisitor.visitTypeInsn(NEW, "java/util/ArrayList");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/util/ArrayList", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ASTORE, 2);
            Label label9 = new Label();
            methodVisitor.visitLabel(label9);
            methodVisitor.visitLineNumber(146, label9);
            methodVisitor.visitTypeInsn(NEW, "java/util/ArrayList");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/util/ArrayList", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ASTORE, 3);
            Label label10 = new Label();
            methodVisitor.visitLabel(label10);
            methodVisitor.visitLineNumber(148, label10);
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitMethodInsn(INVOKEINTERFACE, "java/util/List", "add", "(Ljava/lang/Object;)Z", true);
            methodVisitor.visitInsn(POP);
            Label label11 = new Label();
            methodVisitor.visitLabel(label11);
            methodVisitor.visitLineNumber(149, label11);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "add", "(Ljava/lang/Object;)Z", false);
            methodVisitor.visitInsn(POP);
            Label label12 = new Label();
            methodVisitor.visitLabel(label12);
            methodVisitor.visitLineNumber(151, label12);
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitMethodInsn(INVOKEINTERFACE, "java/util/List", "stream", "()Ljava/util/stream/Stream;", true);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "getClass", "()Ljava/lang/Class;", false);
            methodVisitor.visitInsn(POP);
            methodVisitor.visitInvokeDynamicInsn("accept", "(Ljava/io/PrintStream;)Ljava/util/function/Consumer;", new Handle(Opcodes.H_INVOKESTATIC, "java/lang/invoke/LambdaMetafactory", "metafactory", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;", false), new Object[]{Type.getType("(Ljava/lang/Object;)V"), new Handle(Opcodes.H_INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/Object;)V", false), Type.getType("(Ljava/lang/Integer;)V")});
            methodVisitor.visitMethodInsn(INVOKEINTERFACE, "java/util/stream/Stream", "forEach", "(Ljava/util/function/Consumer;)V", true);
            Label label13 = new Label();
            methodVisitor.visitLabel(label13);
            methodVisitor.visitLineNumber(152, label13);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "stream", "()Ljava/util/stream/Stream;", false);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "getClass", "()Ljava/lang/Class;", false);
            methodVisitor.visitInsn(POP);
            methodVisitor.visitInvokeDynamicInsn("accept", "(Ljava/io/PrintStream;)Ljava/util/function/Consumer;", new Handle(Opcodes.H_INVOKESTATIC, "java/lang/invoke/LambdaMetafactory", "metafactory", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;", false), new Object[]{Type.getType("(Ljava/lang/Object;)V"), new Handle(Opcodes.H_INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/Object;)V", false), Type.getType("(Ljava/lang/Integer;)V")});
            methodVisitor.visitMethodInsn(INVOKEINTERFACE, "java/util/stream/Stream", "forEach", "(Ljava/util/function/Consumer;)V", true);
            Label label14 = new Label();
            methodVisitor.visitLabel(label14);
            methodVisitor.visitLineNumber(154, label14);
            methodVisitor.visitLdcInsn("222");
            methodVisitor.visitIntInsn(SIPUSH, 333);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "invokeStatic", "(Ljava/lang/String;I)V", false);
            Label label15 = new Label();
            methodVisitor.visitLabel(label15);
            methodVisitor.visitLineNumber(156, label15);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitLdcInsn("222");
            methodVisitor.visitIntInsn(SIPUSH, 333);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "com/wangji92/arthas/plugin/demo/test/AppMain", "invokeprivate", "(Ljava/lang/String;I)V", false);
            Label label16 = new Label();
            methodVisitor.visitLabel(label16);
            methodVisitor.visitLineNumber(158, label16);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "hashCode", "()I", false);
            methodVisitor.visitInsn(POP);
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(161, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("try");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(165, label1);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label17 = new Label();
            methodVisitor.visitLabel(label17);
            methodVisitor.visitLineNumber(166, label17);
            Label label18 = new Label();
            methodVisitor.visitJumpInsn(GOTO, label18);
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(162, label2);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/util/List", "java/util/ArrayList"}, 1, new Object[]{"java/lang/RuntimeException"});
            methodVisitor.visitVarInsn(ASTORE, 4);
            Label label19 = new Label();
            methodVisitor.visitLabel(label19);
            methodVisitor.visitLineNumber(163, label19);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("runtimeexception!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(165, label4);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label20 = new Label();
            methodVisitor.visitLabel(label20);
            methodVisitor.visitLineNumber(166, label20);
            methodVisitor.visitJumpInsn(GOTO, label18);
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(165, label3);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/util/List", "java/util/ArrayList"}, 1, new Object[]{"java/lang/Throwable"});
            methodVisitor.visitVarInsn(ASTORE, 5);
            methodVisitor.visitLabel(label5);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("finally");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label21 = new Label();
            methodVisitor.visitLabel(label21);
            methodVisitor.visitLineNumber(166, label21);
            methodVisitor.visitVarInsn(ALOAD, 5);
            methodVisitor.visitInsn(ATHROW);
            methodVisitor.visitLabel(label18);
            methodVisitor.visitLineNumber(168, label18);
            methodVisitor.visitFrame(Opcodes.F_NEW, 4, new Object[]{"com/wangji92/arthas/plugin/demo/test/AppMain", "java/lang/String", "java/util/List", "java/util/ArrayList"}, 0, new Object[]{});
            methodVisitor.visitIntInsn(BIPUSH, 100);
            methodVisitor.visitInsn(IRETURN);
            Label label22 = new Label();
            methodVisitor.visitLabel(label22);
            methodVisitor.visitLocalVariable("e", "Ljava/lang/RuntimeException;", null, label19, label4, 4);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label6, label22, 0);
            methodVisitor.visitLocalVariable("s", "Ljava/lang/String;", null, label6, label22, 1);
            methodVisitor.visitLocalVariable("interfaceRef", "Ljava/util/List;", "Ljava/util/List<Ljava/lang/Integer;>;", label9, label22, 2);
            methodVisitor.visitLocalVariable("classRef", "Ljava/util/ArrayList;", "Ljava/util/ArrayList<Ljava/lang/Integer;>;", label10, label22, 3);
            methodVisitor.visitMaxs(3, 6);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE, "invokeprivate", "(Ljava/lang/String;I)V", null, null);
            methodVisitor.visitParameter("paramsStr", 0);
            methodVisitor.visitParameter("paramsInt", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(172, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitFieldInsn(GETSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled1", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitLdcInsn("paramsStr :{0} paramsInt:{1}");
            methodVisitor.visitInsn(ICONST_2);
            methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Object");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitVarInsn(ILOAD, 2);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/text/MessageFormat", "format", "(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(173, label1);
            methodVisitor.visitInsn(RETURN);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label2, 0);
            methodVisitor.visitLocalVariable("paramsStr", "Ljava/lang/String;", null, label0, label2, 1);
            methodVisitor.visitLocalVariable("paramsInt", "I", null, label0, label2, 2);
            methodVisitor.visitMaxs(7, 3);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE, "invokeprivate2", "(Ljava/lang/String;I)V", null, null);
            methodVisitor.visitParameter("paramsStr", 0);
            methodVisitor.visitParameter("paramsInt", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(176, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ALOAD, 0);
            methodVisitor.visitFieldInsn(GETFIELD, "com/wangji92/arthas/plugin/demo/test/AppMain", "instanceFiled1", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitLdcInsn("paramsStr :{0} paramsInt:{1}");
            methodVisitor.visitInsn(ICONST_2);
            methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Object");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitVarInsn(ILOAD, 2);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/text/MessageFormat", "format", "(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(177, label1);
            methodVisitor.visitInsn(RETURN);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label2, 0);
            methodVisitor.visitLocalVariable("paramsStr", "Ljava/lang/String;", null, label0, label2, 1);
            methodVisitor.visitLocalVariable("paramsInt", "I", null, label0, label2, 2);
            methodVisitor.visitMaxs(7, 3);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE, "invokeprivate3", "(Ljava/lang/String;I)V", null, null);
            methodVisitor.visitParameter("paramsStr", 0);
            methodVisitor.visitParameter("paramsInt", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(180, label0);
            methodVisitor.visitLdcInsn("t_");
            methodVisitor.visitLdcInsn(new Integer(1000000));
            methodVisitor.visitMethodInsn(INVOKESTATIC, "cn/hutool/core/util/StrUtil", "repeat", "(Ljava/lang/CharSequence;I)Ljava/lang/String;", false);
            methodVisitor.visitVarInsn(ASTORE, 3);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(181, label1);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitVarInsn(ALOAD, 3);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitLdcInsn("paramsStr :{0} paramsInt:{1}");
            methodVisitor.visitInsn(ICONST_2);
            methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Object");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_0);
            methodVisitor.visitVarInsn(ALOAD, 1);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitInsn(ICONST_1);
            methodVisitor.visitVarInsn(ILOAD, 2);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
            methodVisitor.visitInsn(AASTORE);
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/text/MessageFormat", "format", "(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(182, label2);
            methodVisitor.visitInsn(RETURN);
            Label label3 = new Label();
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label3, 0);
            methodVisitor.visitLocalVariable("paramsStr", "Ljava/lang/String;", null, label0, label3, 1);
            methodVisitor.visitLocalVariable("paramsInt", "I", null, label0, label3, 2);
            methodVisitor.visitLocalVariable("repeatVar", "Ljava/lang/String;", null, label1, label3, 3);
            methodVisitor.visitMaxs(7, 4);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "doIt", "(Lcom/sun/corba/se/spi/orbutil/fsm/FSM;Lcom/sun/corba/se/spi/orbutil/fsm/Input;)V", null, null);
            methodVisitor.visitParameter("fsm", 0);
            methodVisitor.visitParameter("in", 0);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(186, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitTypeInsn(NEW, "java/lang/StringBuilder");
            methodVisitor.visitInsn(DUP);
            methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "()V", false);
            methodVisitor.visitLdcInsn("doIt :");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitVarInsn(ALOAD, 2);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/Object;)Ljava/lang/StringBuilder;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(187, label1);
            methodVisitor.visitInsn(RETURN);
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLocalVariable("this", "Lcom/wangji92/arthas/plugin/demo/test/AppMain;", "Lcom/wangji92/arthas/plugin/demo/test/AppMain<TX;TY;>;", label0, label2, 0);
            methodVisitor.visitLocalVariable("fsm", "Lcom/sun/corba/se/spi/orbutil/fsm/FSM;", null, label0, label2, 1);
            methodVisitor.visitLocalVariable("in", "Lcom/sun/corba/se/spi/orbutil/fsm/Input;", null, label0, label2, 2);
            methodVisitor.visitMaxs(3, 3);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC, "lambda$new$0", "()V", null, null);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(62, label0);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("test java 8 lambda !!!!!!");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(63, label1);
            methodVisitor.visitInsn(RETURN);
            methodVisitor.visitMaxs(2, 0);
            methodVisitor.visitEnd();
        }
        {
            methodVisitor = classWriter.visitMethod(ACC_STATIC, "<clinit>", "()V", null, null);
            methodVisitor.visitCode();
            Label label0 = new Label();
            methodVisitor.visitLabel(label0);
            methodVisitor.visitLineNumber(22, label0);
            methodVisitor.visitLdcInsn("t_");
            methodVisitor.visitLdcInsn(new Integer(1000000));
            methodVisitor.visitMethodInsn(INVOKESTATIC, "cn/hutool/core/util/StrUtil", "repeat", "(Ljava/lang/CharSequence;I)Ljava/lang/String;", false);
            methodVisitor.visitFieldInsn(PUTSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled0", "Ljava/lang/String;");
            Label label1 = new Label();
            methodVisitor.visitLabel(label1);
            methodVisitor.visitLineNumber(23, label1);
            methodVisitor.visitLdcInsn("JAVA_HOME");
            methodVisitor.visitFieldInsn(PUTSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled1", "Ljava/lang/String;");
            Label label2 = new Label();
            methodVisitor.visitLabel(label2);
            methodVisitor.visitLineNumber(24, label2);
            methodVisitor.visitFieldInsn(GETSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled1", "Ljava/lang/String;");
            methodVisitor.visitMethodInsn(INVOKESTATIC, "java/lang/System", "getenv", "(Ljava/lang/String;)Ljava/lang/String;", false);
            methodVisitor.visitFieldInsn(PUTSTATIC, "com/wangji92/arthas/plugin/demo/test/AppMain", "staticFiled2", "Ljava/lang/String;");
            Label label3 = new Label();
            methodVisitor.visitLabel(label3);
            methodVisitor.visitLineNumber(42, label3);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("static1");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label4 = new Label();
            methodVisitor.visitLabel(label4);
            methodVisitor.visitLineNumber(46, label4);
            methodVisitor.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
            methodVisitor.visitLdcInsn("static1");
            methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
            Label label5 = new Label();
            methodVisitor.visitLabel(label5);
            methodVisitor.visitLineNumber(47, label5);
            methodVisitor.visitInsn(RETURN);
            methodVisitor.visitMaxs(2, 0);
            methodVisitor.visitEnd();
        }
        classWriter.visitEnd();

        return classWriter.toByteArray();
    }
}
